---
description: Espressif ESP32-DevKitC
---
# Espressif ESP32-DevKitC


There are currently issues with serial chip on these, best avoid. ESP32-DevKitC development board. This will also work with DOIT DevkitV1, NodeMCU ESP32, ... (search for 'esp32 devkit'). Some of these boards do not have the LED.


![Espressif ESP32-DevKitC picture](https://microsoft.github.io/jacdac-docs/images/devices/espressif/esp32devkitcdevicescriptv40.catalog.jpg)

## Features

-  LED on pin 2  (use [setStatusLight](/developer/status-light) to control)

{@import optional ./esp32-devkit-c-features.mdp}

-  Service: buttonIO0 (button)

{@import optional ./esp32-devkit-c-services.mdp}


:::caution

I2C pins are not [configured](/developer/board-configuration).

:::


## Stores

-  [https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html)
-  [https://www.espressif.com/en/products/devkits/esp32-devkitc](https://www.espressif.com/en/products/devkits/esp32-devkitc)

## Pins

| pin name | hardware id | features |
|:---------|:------------|---------:|
| **P13** |  GPIO13 |  debug,  io,  touch |
| **P14** |  GPIO14 |  debug,  io,  touch |
| **P18** |  GPIO18 |  io |
| **P19** |  GPIO19 |  io |
| **P21** |  GPIO21 |  io |
| **P22** |  GPIO22 |  io |
| **P23** |  GPIO23 |  io |
| **P25** |  GPIO25 |  analogOut,  io |
| **P26** |  GPIO26 |  analogOut,  io |
| **P27** |  GPIO27 |  io,  touch |
| **P32** |  GPIO32 |  analogIn,  io,  touch |
| **P33** |  GPIO33 |  analogIn,  io,  touch |
| **P34** |  GPIO34 |  analogIn,  input |
| **P35** |  GPIO35 |  analogIn,  input |
| **P4** |  GPIO4 |  io,  touch |
| **VN** |  GPIO39 |  analogIn,  input |
| **VP** |  GPIO36 |  analogIn,  input |
| **$services.buttonIO0[0].pin** |  GPIO0 |  $services.buttonIO0[0].pin,  boot,  io,  touch |
| **led.pin** |  GPIO2 |  led.pin,  boot,  io,  touch |



## DeviceScript import


You must add this import statement to load 
the pinout configuration for this device.

In [Visual Studio Code](/getting-started/vscode),
click the **wand** icon on the file menu and 
select "Espressif ESP32-DevKitC".

```ts
import { pins, board } from "@dsboard/esp32_devkit_c"
```

{@import optional ./esp32-devkit-c-examples.mdp}

## Firmware update

In Visual Studio Code,
select **DeviceScript: Flash Firmware...** from the command palette.
        
Run this [command line](/api/cli) command and follow the instructions.

```bash
devicescript flash --board esp32_devkit_c
```


- [Firmware](https://github.com/microsoft/devicescript-esp32/releases/latest/download/devicescript-esp32-esp32_devkit_c-0x1000.bin)

## Configuration

```json title="esp32_devkit_c.json"
{
    "$schema": "https://raw.githubusercontent.com/microsoft/devicescript-esp32/main/boards/esp32deviceconfig.schema.json",
    "id": "esp32_devkit_c",
    "devName": "Espressif ESP32-DevKitC",
    "productId": "0x3c507a05",
    "$description": "There are currently issues with serial chip on these, best avoid. ESP32-DevKitC development board. This will also work with DOIT DevkitV1, NodeMCU ESP32, ... (search for 'esp32 devkit'). Some of these boards do not have the LED.",
    "archId": "esp32",
    "url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html",
    "$services": [
        {
            "name": "buttonIO0",
            "pin": 0,
            "service": "button"
        }
    ],
    "led": {
        "pin": 2
    },
    "pins": {
        "P13": 13,
        "P14": 14,
        "P18": 18,
        "P19": 19,
        "P21": 21,
        "P22": 22,
        "P23": 23,
        "P25": 25,
        "P26": 26,
        "P27": 27,
        "P32": 32,
        "P33": 33,
        "P34": 34,
        "P35": 35,
        "P4": 4,
        "VN": 39,
        "VP": 36
    }
}
```
